home *** CD-ROM | disk | FTP | other *** search
- function build()
- {
- gotoAndStop("begin");
- }
- function init()
- {
- build();
- }
- function updateRight(frameToDisplay)
- {
- preview_mc.gotoAndStop(frameToDisplay);
- }
- function showQuiz()
- {
- txtQuizTitle.text = quizData.title;
- setupScrollPane();
- currRound = 0;
- showRound();
- }
- function showRound()
- {
- mQuizRound.txtIntro.htmlText = "";
- if(currRound == 0)
- {
- mQuizRound.txtIntro.htmlText = quizData.intro + "\r\n";
- }
- mImage.loadMovie(Tardis.ASSETS_FOLDER + "images/kids/quiz/" + quizData.arrRounds[currRound].image);
- mQuizRound.txtIntro.htmlText += quizData.arrRounds[currRound].intro + "\r\n";
- var _loc1_ = currRound == quizData.arrRounds.length - 1;
- mQuizRound.showItems(quizData.arrRounds[currRound].arrItems,_loc1_);
- _visible = true;
- }
- function onRoundSubmitted(totalCorrect)
- {
- totalScore += quizData.arrRounds[currRound].value * totalCorrect;
- currRound++;
- if(currRound < quizData.arrRounds.length)
- {
- showRound();
- }
- else
- {
- mScrollPane._visible = false;
- mScrollPane._x = 900;
- gotoAndStop("results");
- }
- }
- function showResults()
- {
- var _loc1_ = "";
- if(isShowingAnswers == true)
- {
- _loc1_ += quizData.replay;
- txtQuizTitle.text = quizData.title;
- }
- else
- {
- _loc1_ += getResultTextFromScore();
- txtQuizTitle.text = quizData.resultsTitle;
- }
- txtResults.htmlText = _loc1_;
- }
- function getResultTextFromScore()
- {
- var _loc1_ = 0;
- while(_loc1_ < quizData.arrCategories.length)
- {
- if(quizData.arrCategories[_loc1_].score <= totalScore)
- {
- break;
- }
- _loc1_ = _loc1_ + 1;
- }
- return quizData.arrCategories[_loc1_].text;
- }
- function replayQuiz(showAnswers)
- {
- isShowingAnswers = showAnswers;
- gotoAndStop("begin");
- play();
- }
- function setupScrollPane()
- {
- this.attachMovie("FScrollPaneSymbol","mScrollPane",15);
- mScrollPane._x = 10;
- mScrollPane._y = 40;
- mScrollPane.setSize(351,339);
- mScrollPane.setHScroll(false);
- mScrollPane.setScrollContent(mQuizRound);
- }
- function parseNodeData(nodeData)
- {
- var _loc3_ = new Object();
- var _loc2_ = nodeData.firstChild.childNodes;
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.length)
- {
- if(_loc2_[_loc1_].nodeName == "rounds")
- {
- _loc3_.arrRounds = parseRoundNodes(_loc2_[_loc1_].childNodes);
- }
- else if(_loc2_[_loc1_].nodeName == "categories")
- {
- _loc3_.arrCategories = parseCategoryNodes(_loc2_[_loc1_].childNodes);
- }
- else
- {
- _loc3_[_loc2_[_loc1_].nodeName] = _loc2_[_loc1_].firstChild.nodeValue;
- }
- _loc1_ = _loc1_ + 1;
- }
- return _loc3_;
- }
- function parseCategoryNodes(arrNodes)
- {
- var _loc3_ = arrNodes;
- var _loc2_ = new Array();
- var _loc1_ = 0;
- while(_loc1_ < _loc3_.length)
- {
- _loc2_[_loc1_] = new Object();
- _loc2_[_loc1_].score = Number(_loc3_[_loc1_].attributes.score);
- _loc2_[_loc1_].text = _loc3_[_loc1_].firstChild.nodeValue;
- _loc1_ = _loc1_ + 1;
- }
- return _loc2_;
- }
- function parseRoundNodes(arrNodes)
- {
- var _loc2_ = arrNodes;
- var _loc3_ = new Array();
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.length)
- {
- if(_loc2_[_loc1_].nodeName == "round")
- {
- _loc3_.push(parseRoundNode(_loc2_[_loc1_].childNodes));
- }
- _loc1_ = _loc1_ + 1;
- }
- return _loc3_;
- }
- function parseRoundNode(arrNodes)
- {
- var _loc2_ = arrNodes;
- var _loc3_ = new Object();
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.length)
- {
- if(_loc2_[_loc1_].nodeName == "intro")
- {
- _loc3_.intro = _loc2_[_loc1_].firstChild.nodeValue;
- }
- else if(_loc2_[_loc1_].nodeName == "value")
- {
- _loc3_.value = Number(_loc2_[_loc1_].firstChild.nodeValue);
- }
- else if(_loc2_[_loc1_].nodeName == "image")
- {
- _loc3_.image = _loc2_[_loc1_].firstChild.nodeValue;
- }
- else if(_loc2_[_loc1_].nodeName == "items")
- {
- _loc3_.arrItems = parseItemNodes(_loc2_[_loc1_].childNodes);
- }
- _loc1_ = _loc1_ + 1;
- }
- return _loc3_;
- }
- function parseItemNodes(arrNodes)
- {
- var _loc2_ = arrNodes;
- var _loc3_ = new Array();
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.length)
- {
- _loc3_.push(parseItemNode(_loc2_[_loc1_].childNodes,_loc1_ + 1));
- _loc1_ = _loc1_ + 1;
- }
- return _loc3_;
- }
- function parseItemNode(arrNodes, itemNumber)
- {
- var _loc3_ = arrNodes;
- var obj = new Object();
- obj.questionNumber = itemNumber;
- obj.arrChoices = new Array();
- var _loc2_ = 0;
- while(_loc2_ < _loc3_.length)
- {
- if(_loc3_[_loc2_].nodeName == "question")
- {
- obj.question = _loc3_[_loc2_].firstChild.nodeValue;
- }
- else if(_loc3_[_loc2_].nodeName == "answer")
- {
- obj.answer = Number(_loc3_[_loc2_].firstChild.nodeValue);
- }
- else if(_loc3_[_loc2_].nodeName == "choice")
- {
- var arrChoiceNodes = _loc3_[_loc2_].childNodes;
- var _loc1_ = 0;
- while(_loc1_ < arrChoiceNodes.length)
- {
- obj.arrChoices.push(arrChoiceNodes[_loc1_].firstChild.nodeValue);
- _loc1_ = _loc1_ + 1;
- }
- }
- _loc2_ = _loc2_ + 1;
- }
- return obj;
- }
- this.onUnload = function()
- {
- this.unloadMovie();
- };
- stop();
- if(this == _root)
- {
- theFile = "quiz_dynamic.xml";
- var nodeData = new XML();
- nodeData.ignoreWhite = true;
- nodeData.onLoad = function(success)
- {
- if(success)
- {
- quizData = parseNodeData(this);
- build();
- }
- };
- nodeData.load(theFile);
- }
- else
- {
- _visible = false;
- quizData = parseNodeData(_parent.ndContent);
- onReady();
- }
-